1. Statement of the Technical Field
The present invention relates to the field of image sharing and more particularly to the distribution of application imagery during an application sharing session between a multiplicity of application viewers.
2. Description of the Related Art
The rapid development of the Internet has led to advanced modes of communication and collaboration. Using the Internet as a backbone, individuals worldwide can converge in cyberspace to share ideas, documents and images in a manner not previously possible through conventional telephony and video conferencing. To facilitate collaboration over the Internet, a substantial collection of technologies and protocols have been assembled to effectively deliver audio, video and data over the single data communications medium of the Internet. These technologies include instant messaging, Internet telephony and application sharing.
In conventional application sharing, an application host can distribute imagery of an application operating in the host to one or more application viewers distributed about the computer communications network. The imagery can include not only the screens rendered in association with the operation of the shared application, but also the visual presentation of mouse pointer movements and the like. Generally, speaking, however, the imagery can include only discrete “snap-shots” of the actual display of the operating application in the host system. In this way, the application viewers can be given the appearance of sharing an application, though each viewer merely views a shadow rendering of only a portion of the operation of the shared application.
Application sharing technology allows the capturing of a series of images which represent the display of an application. The images can be transmitted across the computer communications network, which when rendered, can provide the illusion of duplicating the display of the application in its host environment. Nevertheless, the underlying technology used to support application sharing in this manner includes substantial limitations in regard to the optimal servicing of multiple disparate shared application types. Specifically, there does not exist any one particular method that produces optimal results for all potential situations where application sharing technology may be utilized.
In more particular illustration, some shared applications include application displays which when rendered, must include the highest of display resolution. Examples include image oriented applications such as medical imaging applications and architectural design applications. In contrast, other shared applications include application displays which when rendered, need not include a high degree of display resolution. Of course, display resolution is not the only performance factor which can vary among different types of shared applications. In this regard, display update frequency requirements can range from infrequent to periodic to often. In this case of a distance learning application, for example, while display resolution may not be important, certainly the speed of delivery of the imagery will be important.
To ensure the highest fidelity in reproducing imagery for shared applications requiring the same, each of the capturing, compressing and transmitting steps associated with image distribution must preserve image detail. Yet, to do so requires a substantial level of computing resources which may be consumed in the course of capturing, compressing and transmitting imagery without a resulting loss in image resolution. By comparison, where the speed of image delivery is of paramount importance, the capturing, compressing and transmitting steps can sacrifice image fidelity in order to obtain speed. Similarly, where the conservative consumption of resources is desired, the capturing, compressing and transmitting process can sacrifice image quality in order to conserve computing resources.
Existing application sharing solutions do not effectively cover the vast range of image fidelity, speed of delivery and computing resource consumption requirements from the finest level of detail to high speed transmission and low computing resource utilization. As a result, some application sharing methodologies are tuned to favor shared applications requiring substantial image fidelity, while others are tuned to sacrifice fidelity in favor of transmission speed or efficiency in the consumption of computing resources.